#!/bin/sh

# Check that all files that should have the current version agree on it

PC_PATH=mce.pc
PC_VERS=$(grep '^Version:' $PC_PATH |sed -e 's/^.*:[[:space:]]*//')

DEB_PATH=debian/changelog
DEB_VERS=$(head -1 $DEB_PATH | sed -e 's/^.*(//' -e 's/).*$//')

RPM_PATH=${RPM_SOURCE_DIR:-rpm}/${RPM_PACKAGE_NAME:-mce-headers}.spec
RPM_VERS=$(grep '^Version:' $RPM_PATH |sed -e 's/^.*:[[:space:]]*//')

# Remove initial part of rpm version  that equals with version from pkgconfig
RPM_XTRA=${RPM_VERS#$PC_VERS}
# From that remove initial part that equals with version from spec-file
RPM_XTRA=${RPM_XTRA#$RPM_VERS}
# If the result is non-empty string, then OBS is doing
# delta-after-matching-tag kind of build, which is ok.
# But empty string means that spec and Makefile are completely
# out of sync, which is bad.

RES=0

if [ "$DEB_VERS" != "$PC_VERS" ]; then
  echo >&2 "$PC_PATH $PC_VERS vs $DEB_PATH $DEB_VERS"
  RES=1
fi

if [ "$RPM_VERS" != "$PC_VERS" ]; then
  if [ -z "$RPM_XTRA" ]; then
    echo >&2 "$PC_PATH $PC_VERS vs $RPM_PATH $RPM_VERS"
    RES=1
  else
    echo "(ignoring patch level in spec file: $RPM_XTRA)"
  fi
fi

if [ $RES != 0 ]; then
  echo >&2 "Conflicting package versions"
fi

exit $RES
